You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jan 12, 2026. It is now read-only.
- When used as a context manager, handlers, flags, and processors would swallow
a raised ``BaseException`` and raise a ``TypeError`` `#​500 <https://github.com/getlogbook/logbook/issues/500>`_.
Version 1.9.1
-------------
Fixed
Required files were missing from the source distribution (sdist).
- Python 3.14 support
- Python 3.14 free-threading support (beta). This does not extend to all optional
dependencies. At the time of writing, the following extras are not supported due
to their dependencies pulling in C extensions which do not support free-threading:
- ``brotli``
- ``nteventlog``
- ``sqlalchemy``
- Wheels are built for Windows ARM64
Changed
The way handlers, flags, and processors are activated is now based on
:mod:contextvars, and has been completely rewritten. See deprecations since
many methods have been deprecated and are mere aliases to the new defaults.
Cython has been replaced with Rust for the speedups module.
Logbook[brotli] depends on brotlicffi on non-CPython implementations.
Deprecated
- ``logbook.__version__``. Use :mod:`importlib.metadata` instead.
- There are now only two ways to activate :class:`~logbook.Handler`,
:class:`~logbook.Flags`, and :class:`~logbook.Processor` instances.
Either globally:
.. code-block:: python
handler = StderrHandler()
with handler.applicationbound():
...
handler.push_application()
try:
...
finally:
handler.pop_application()
or for the current context:
.. code-block:: python
handler = StderrHandler()
with handler:
...
handler.push_context()
try:
...
finally:
handler.pop_context()
- The following methods on :class:`~logbook.Handler`, :class:`~logbook.Flags`,
and :class:`~logbook.Processor`:
- ``push_greenlet`` is an alias to ``push_context``
- ``pop_greenlet`` is an alias to ``pop_context``
- ``push_thread`` is an alias to ``push_context``
- ``pop_thread`` is an alias to ``pop_context``
- ``with obj.greenletbound()``, use ``with obj:`` instead.
- ``with obj.threadbound()``, use ``with obj:`` instead.
- ``with obj.contextbound()``, use ``with obj:`` instead.
- ``logbook.concurrency.enable_gevent``, use ``gevent.monkey`` instead.
- ``logbook.concurrency.is_gevent_enabled``.
- ``logbook.concurrency.new_fine_grained_lock``.
- The ``compression`` extra. Replace ``Logbook[compression]`` with
``Logbook[brotli]`` if you are using ``BrotliCompressionHandler``
- :meth:`Logger.warn <logbook.Logger.warn>`. Use
:meth:`Logger.warning <logbook.Logger.warning>` instead.
- :class:`logbook.notifiers.GrowlHandler`
- :class:`logbook.notifiers.BoxcarHandler`
- :class:`logbook.notifiers.NotifoHandler`
- :class:`logbook.more.TwitterHandler`
- ``logbook.more.TwitterFormatter``
Fixed
~~~~~
- The previous contextvars implementation (used by ``push_context``,
``pop_context``, and ``contextbound``) was completely broken. The new
implementation supersedes the previous default (using thread locals), and is
now the default.
Version 1.8.2
-------------
- TimedRotatingFileHandler was sensitive to changes in the current work
directory if ``filename`` was a relative path.
- Wheels are built for Linux arm64
Version 1.8.1
-------------
- Fixed crash on Python 3.12+ in speedups extension module.
Version 1.8.0
-------------
- Python 3.13 support
- Fixed deprecation warnings on Python 3.12
- Dropped support for Python 3.8
Version 1.7.0.post0
-------------------
Released on November 11th, 2023
- Ensure setuptools can read version number statically during build
Version 1.7.0
-------------
Released on October 3rd, 2023
- Dropped support for Python 3.7
- Passing (keyfile, certfile) to MailHandler's ``secure`` argument is deprecated
in favour of passing an ``ssl.SSLContext``.
- Python 3.12 support
Version 1.6.0
-------------
Released on July 30th, 2023
- Dropped support for Python 2.7, 3.5, and 3.6.
- Uses pyproject.toml based build.
- Added nteventlog extra for NTEventLogHandler.
- Supports SQLAlchemy 1.4 and 2.0.
- Fix various deprecation warnings.
- exc_info arg may be a BaseException instance (thanks Mattijs Ugen)
- FileHandler supports path-like objects.
- Fixed bug which prevented compilation on Cython 3
- Wheels are generated for more platforms and architectures
Version 1.5.3
-------------
Released on October 16th, 2019
- Fixed deprecated imports from collections module.
Version 1.5.2
-------------
Released on August 21st, 2019
- No changes
Version 1.5.1
-------------
Released on August 20th, 2019
- Added support for asyncio and contextvars
Version 1.4.3
-------------
Released on January 16th, 2019
- Fixed Pypi release for 1.4.2
Version 1.4.2
-------------
Released on December 11th, 2018
- Use correct record delimiters (null for UNIX, newline for network) in SyslogHandler (thanks Jonathan Kamens)
- Try to reconnect to SyslogHandler TCP sockets when they are disconnected (thanks Jonathan Kamens)
- Use RFC 5424 format for networking logging in SyslogHandler (thanks Jonathan Kamens)
Here you can see the full list of changes between each Logbook release.
Version 1.4.1
-------------
Released on October 14th, 2018
- Fixed deprecated regular expression pattern (thanks Tsuyoshi Hombashi)
- Fixed TimedRotatingFileHandler rotation (thanks Tucker Beck)
Version 1.4.0
-------------
Released on May 15th, 2018
- Added support for checking if trace logs have been emitted in TestHandler (thanks @​thedrow)
Version 1.3.0
-------------
Released on March 5th, 2018
- Added support for controlling rotating file names -- Logbook now allows users to customize the formatting of rollover/rotating files (thanks Tucker Beck)
Version 1.2.0
-------------
Released on February 8th, 2018
- Added support for compressed log files, supporting both gzip and brotli compression methods (thanks Maor Marcus)
- Fixed CPU usage for queuing handlers (thanks Adam Urbańczyk)
Version 1.1.0
-------------
Released on July 13th 2017
- Added a handler for Riemann (thanks Šarūnas Navickas)
- Added a handler for Slack (thanks @​jonathanng)
- Colorizing mixin can now force coloring on or off (thanks @​ayalash)
Version 1.0.1
-------------
- Fix PushOver handler cropping (thanks Sébastien Celles)
VERSION 1.0.0
-------------
Released on June 26th 2016
- Added support for timezones for log timestamp formatting (thanks Mattijs Ugen)
- Logbook has been a 0.x long enough to earn its 1.0.0 bump!
- Logbook now uses SemVer for its versioning scheme
- Various improvements to MailHandler and the usage of TLS/SMTP SSL (thanks Frazer McLean)
- Fix log colorizing on Windows (thanks Frazer McLean)
- Coverage reports using coveralls.io
- Dropped compatibility for Python 3.2. At this point we did not actually remove any code that supports it, but the continuous integration tests no longer check against it, and we will no longer fix compatibility issues with 3.2.
- Better coverage and tests on Windows (thanks Frazer McLean)
- Added enable() and disable() methods for loggers (thanks Frazer McLean)
- Many cleanups and overall project improvements (thanks Frazer McLean)
Version 0.12.0
--------------
Released on November 24th 2015
- Added logbook.utils.deprecated to automatically emit warnings when certain functions are called (Thanks Ayala Shachar)
- Added logbook.utils.suppressed_deprecations context to temporarily suppress deprecations (Thanks Ayala Shachar)
- Added logbook.utils.logged_if_slow to emit logs when certain operations exceed a time threshold (Thanks Ayala Shachar)
- Many PEP8 fixes and code cleanups (thanks Taranjeet Singh and Frazer McLean)
- TestHandler constructor now receives an optional `force_heavy_init=True`, forcing all records to heavy-initialize
Version 0.11.3
--------------
Released on November 5th 2015
- Windows-specific fixes and CI configuration (Thanks Frazer McLean)
- Several Unicode-specific fixes (Thanks Frazer McLean)
- Documentation cleanups
Version 0.11.2
--------------
Released on September 29th 2015
- Fix importing issue with SQLAlchemy ticketing handler
Version 0.11.0
--------------
Released on September 29th 2015
- Added TRACE log level for enabling logs below DEBUG
- Improved SQLAlchemy session management (thanks @​fintan)
- Removed the ``bubble`` argument from NullHandler, preventing many future confusions
Version 0.10.1
--------------
Released on August 4th 2015
- Small bugfix supporting exc_info=False without breaking formatting
Version 0.10.0
--------------
Released on July 14th 2015
- Removed the global handler which was installed by default so far. The rationale is to ease adoption for 3rd party libraries who don't want output to go to stderr by default. The old behavior can still be restored by setting the LOGBOOK_INSTALL_DEFAULT_HANDLER environment variable
- Fix small Python 3 compatibility issues
Version 0.9.1
-------------
Released on May 4th 2015
- Minor fixes
Version 0.9.0
-------------
Released on February 12th 2015
- Added frame correction option, to properly mark log record origins (Thanks Roey Darwish)
- Fixed MailHandler infinite recursion bug (Thanks Tal Yalon)
Version 0.8.1
-------------
Released on November 30th 2014
- Fix support for gevent, along with various other fixes (Thanks Tal Yalon)
Version 0.8.0
-------------
Released on November 11th 2014. Codename "improve_some_more"
- Added Pushover handler (thanks @​owo)
- Default logging format now includes seconds and microseconds (#​110)
- Several fixes regarding possible deadlocks in log formatting (thanks Guy Rozendorn)
- Fixed packaging so that the speedups module now gets packaged by default (#​122)
- ThreadedWrapperHandler now supports maxsize (#​121) (thanks Ken Jung)
- Fixes in rotating handlers (thanks zhangliyong)
- Added Pushover handler (thanks Ossama W. Obeid)
- RedisHandler now supports lpush as an option (thanks Bruno Rocha)
Version 0.7.0
-------------
Released on May 12th 2014. Codename "not_just_yet"
- Restored Python 3.2 support (thanks @​rnortman)
- NullHandlers now respect filters - allows to only drop/mute certain records (#​73)
- redirect_logging now sets the legacy root logger's level to DEBUG by default. This can be changed by specifying `set_root_logger_level=False` (#​96)
- Bugfixes
Version 0.6.0
-------------
Released on October 3rd 2013. Codename "why_not_production_ready"
- Added Redis handler (Thanks a lot @​guillermo-carrasco for this PR)
- Fixed email encoding bug (Thanks Raphaël Vinot)
Version 0.5.0
-------------
Released on August 10th 2013.
- Drop 2.5, 3.2 support, code cleanup
- The exc_info argument now accepts `True`, like in the standard logging module
Version 0.4.2
-------------
Released on June 2nd 2013.
- Fixed Python 3.x compatibility, including speedups
- Dropped Python 2.4 support. Python 2.4 support caused a lot of hacks in the code and introduced duplication to the test code. In addition, it is impossible to cover 2.4-3.x with a single tox installation, which may introduce unwitting code breakage. Travis also does not support Python 2.4 so the chances of accidentally breaking this support were very high as it was...
Version 0.4.1
-------------
Released on December 12th. Codename "121212"
- Fixed several outstanding encoding problems, thanks to @​dvarazzo.
- Merged in minor pull requests (see https://github.com/getlogbook/logbook/pulls?q=is%3Aclosed)
Version 0.4
-----------
Released on October 24th. Codename "Phoenix"
- Added preliminary RabbitMQ and CouchDB support.
- Added :class:`logbook.notifiers.NotifoHandler`
- `channel` is now documented to be used for filtering purposes if
wanted. Previously this was an opaque string that was not intended
for filtering of any kind.
Version 0.3
-----------
Released on October 23rd. Codename "Informant"
- Added :class:`logbook.more.ColorizingStreamHandlerMixin` and
:class:`logbook.more.ColorizedStderrHandler`
- Deprecated :class:`logbook.RotatingFileHandlerBase` because the
interface was not flexible enough.
- Provided basic Python 3 compatibility. This did cause a few smaller
API changes that caused minimal changes on Python 2 as well. The
deprecation of the :class:`logbook.RotatingFileHandlerBase` was a
result of this.
- Added support for Python 2.4
- Added batch emitting support for handlers which now makes it possible
to use the :class:`logbook.more.FingersCrossedHandler` with the
:class:`logbook.MailHandler`.
- Moved the :class:`~logbook.FingersCrossedHandler` handler into the
base package. The old location stays importable for a few releases.
- Added :class:`logbook.GroupHandler` that buffers records until the
handler is popped.
- Added :class:`logbook.more.ExternalApplicationHandler` that executes
an external application for each log record emitted.
Version 0.2.1
-------------
Bugfix release, Released on September 22nd.
- Fixes Python 2.5 compatibility.
Version 0.2
-----------
Released on September 21st. Codename "Walls of Text"
- Implemented default with statement for handlers which is an
alias for `threadbound`.
- `applicationbound` and `threadbound` return the handler now.
- Implemented channel recording on the log records.
- The :class:`logbook.more.FingersCrossedHandler` now is set to
`ERROR` by default and has the ability to create new loggers
from a factory function.
- Implemented maximum buffer size for the
:class:`logbook.more.FingersCrossedHandler` as well as a lock
for thread safety.
- Added ability to filter for context.
- Moved bubbling flags and filters to the handler object.
- Moved context processors on their own stack.
- Removed the `iter_context_handlers` function.
- Renamed `NestedHandlerSetup` to :class:`~logbook.NestedSetup`
because it can now also configure processors.
- Added the :class:`logbook.Processor` class.
- There is no difference between logger attached handlers and
context specific handlers any more.
- Added a function to redirect warnings to logbook
(:func:`logbook.compat.redirected_warnings`).
- Fixed and improved :class:`logbook.LoggerGroup`.
- The :class:`logbook.TestHandler` now keeps the record open
for further inspection.
- The traceback is now removed from a log record when the record
is closed. The formatted traceback is a cached property
instead of a function.
- Added ticketing handlers that send logs directly into a database.
- Added MongoDB backend for ticketing handlers
- Added a :func:`logbook.base.dispatch_record` function to dispatch
records to handlers independently of a logger (uses the default
record dispatching logic).
- Renamed `logger_name` to `channel`.
- Added a multi processing log handler
(:class:`logbook.more.MultiProcessingHandler`).
- Added a twitter handler.
- Added a ZeroMQ handler.
- Added a Growl handler.
- Added a Libnotify handler.
- Added a monitoring file handler.
- Added a handler wrapper that moves the actual handling into a
background thread.
- The mail handler can now be configured to deliver each log record
not more than n times in m seconds.
- Added support for Python 2.5
- Added a :class:`logbook.queues.SubscriberGroup` to deal with multiple
subscribers.
- Added a :class:`logbook.compat.LoggingHandler` for redirecting logbook
log calls to the standard library's :mod:`logging` module.
Version 0.1
-----------
First public release.
#
##
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
None yet
0 participants
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
==1.5.3→==1.9.2Release Notes
getlogbook/logbook (Logbook)
v1.9.2Compare Source
Fixed
v1.9.1Compare Source
See CHANGES
v1.9.0Compare Source
Added
:mod:
contextvars, and has been completely rewritten. See deprecations sincemany methods have been deprecated and are mere aliases to the new defaults.
Logbook[brotli]depends onbrotlicffion non-CPython implementations.Deprecated
v1.8.2Compare Source
See CHANGES
v1.8.1Compare Source
See CHANGES
v1.8.0Compare Source
See CHANGES
v1.7.0.post0Compare Source
See CHANGES
v1.7.0Compare Source
See CHANGES
v1.6.0Compare Source
See CHANGES
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.